﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Elysium.Demo;
using SIIE_ERP.Codigo;
using Elysium.Demo.Ventas;
using SIIE_ERP.BaseDatos.Configuracion.Empresa;
using SIIE_ERP.BaseDatos.Configuracion;
using System.Data;
using System.IO;
using System.Net.Mail;
using System.Net;

namespace Elysium.Demo.Configuracion
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class TiempoAire_TerminosCondiciones : UserControl
    {
        private UsuarioActivo _sesion;

        public TiempoAire_TerminosCondiciones(ref UsuarioActivo usuario)
        {
            InitializeComponent();
            this._sesion = usuario;  
        }
        ////////////////////////////////////////////////////////////////////////////
        //  PROPIEDADES DE NAVEGACION
        public string Texto { get { return _texto; } }
        public TabControl TabControlPadre { get { return _tabControlPadre; } }
        public TabItem TabItemPadre { get { return _tabItemPadre; } }

        private string _texto;
        private TabControl _tabControlPadre;
        private TabItem _tabItemPadre;

        public void setParametros(string Texto, ref TabControl tabControl, ref TabItem tabItem)
        {
            this._texto = Texto; this._tabControlPadre = tabControl; this._tabItemPadre = tabItem;
        }
        private void ButtonRegresar_Click(object sender, RoutedEventArgs e)
        {
            (this.Parent as ScrollViewer).Content = null;
        }
        // FIN DE PROPIEDADES DE NAVEGACION
        ///////////////////////////////////////////////////////////////////////////
        private void ButtonInformacion_Click_1(object sender, RoutedEventArgs e)
        {
            WindowAyuda Ayuda = new Elysium.Demo.WindowAyuda("TiempoAire.htm", "Ayuda");
            Ayuda.Owner = SIIE_ERP.View.NavegacionUI.GetParentWindow(this); Ayuda.ShowDialog();
        }

        private void Hyperlink_Click_1(object sender, RoutedEventArgs e)
        {
            WindowAyuda Ayuda = new Elysium.Demo.WindowAyuda("TerminosTiempoAire.htm", "Terminos y Condiciones");
            Ayuda.Owner = SIIE_ERP.View.NavegacionUI.GetParentWindow(this); Ayuda.ShowDialog();
        }

        private void Button_Guardar_Click(object sender, RoutedEventArgs e)
        {
            if ((bool)CheckBoxTerminos.IsChecked)
            {
                if (!WebServicesClass.CheckConnection())
                {
                    MessageBox.Show("Necesita conexión a internet para poder realizar esta acción.");
                    return;
                }
                
                dbo_Cat_Empresa Cat_Empresa = new dbo_Cat_Empresa(_sesion.RFC, _sesion.UserName);
                System.Data.DataTable dt_Cat_Empresa = Cat_Empresa.Get_Empresas();

                dbo_Cat_Sucursal Cat_Sucursal = new dbo_Cat_Sucursal(_sesion.RFC, _sesion.UserName);
                System.Data.DataTable dt_Cat_Sucursal = Cat_Sucursal.Get_Sucursal_Por_Nombre("Matriz");

                string Razon_Social = dt_Cat_Empresa.Rows[0]["Razon_Social"].ToString();
                string Calle = dt_Cat_Sucursal.Rows[0]["Calle"].ToString();
                string Colonia = dt_Cat_Sucursal.Rows[0]["Colonia"].ToString();
                string Delegacion = dt_Cat_Sucursal.Rows[0]["Municipio"].ToString();
                string Ciudad = dt_Cat_Sucursal.Rows[0]["Población"].ToString();
                string CP = dt_Cat_Sucursal.Rows[0]["CP"].ToString();
                string Estado = dt_Cat_Sucursal.Rows[0]["Desc_Estado"].ToString();
                string Pais = dt_Cat_Sucursal.Rows[0]["Desc_Pais"].ToString();
                string TipoContacto = dt_Cat_Empresa.Rows[0]["Puesto_Contacto"].ToString();
                string NombreContacto = dt_Cat_Empresa.Rows[0]["Nombre_Contacto"].ToString();
                string Telefono = dt_Cat_Empresa.Rows[0]["Telefono_Contacto"].ToString();
                string CorreoElectronico = dt_Cat_Empresa.Rows[0]["Correo_Contacto"].ToString();                

                //Razón Social
                if (String.IsNullOrEmpty(Razon_Social))
                {
                    MessageBox.Show("Necesita ingresar su Razón social en el apartado de Empresa ubicado en el módulo de configuración");
                    return;
                }

	            //Calle	
                if (String.IsNullOrEmpty(Calle))
                {
                    MessageBox.Show("Necesita ingresar su Calle en el registro 'Matriz' del Catálogo Sucursales ubicado en el módulo de configuración");
                    return;
                }

	            //Colonia	
                if (String.IsNullOrEmpty(Colonia))
                {
                    MessageBox.Show("Necesita ingresar su Colonia en el registro 'Matriz' del Catálogo Sucursales ubicado en el módulo de configuración");
                    return;
                }

	            //Delegación	
                if (String.IsNullOrEmpty(Delegacion))
                {
                    MessageBox.Show("Necesita ingresar su Delegación / Municipio en el registro 'Matriz' del Catálogo Sucursales ubicado en el módulo de configuración");
                    return;
                }

	            //Ciudad	
                if (String.IsNullOrEmpty(Ciudad))
                {
                    MessageBox.Show("Necesita ingresar su Ciudad en el registro 'Matriz' del Catálogo Sucursales ubicado en el módulo de configuración");
                    return;
                }

	            //C.P.	
                if (String.IsNullOrEmpty(CP))
                {
                    MessageBox.Show("Necesita ingresar su C.P. en el registro 'Matriz' del Catálogo Sucursales ubicado en el módulo de configuración");
                    return;
                }

	            //Estado
                if (String.IsNullOrEmpty(Estado))
                {
                    MessageBox.Show("Necesita ingresar su Estado en el registro 'Matriz' del Catálogo Sucursales ubicado en el módulo de configuración");
                    return;
                }

	            //País	
                if (String.IsNullOrEmpty(Pais))
                {
                    MessageBox.Show("Necesita ingresar su País en el registro 'Matriz' del Catálogo Sucursales ubicado en el módulo de configuración");
                    return;
                }

	            //Tipo de Contacto	
                if (String.IsNullOrEmpty(TipoContacto))
                {
                    MessageBox.Show("Necesita ingresar su Puesto en el apartado de Empresa ubicado en el módulo de configuración");
                    return;
                }

	            //Nombre del Contacto	
                if (String.IsNullOrEmpty(NombreContacto))
                {
                    MessageBox.Show("Necesita ingresar su Nombre de Contacto en el apartado de Empresa ubicado en el módulo de configuración");
                    return;
                }

	            //Teléfono	
                if (String.IsNullOrEmpty(Telefono))
                {
                    MessageBox.Show("Necesita ingresar su Teléfono de Contacto en el apartado de Empresa ubicado en el módulo de configuración");
                    return;
                }

	            //Correo Electrónico	
                if (String.IsNullOrEmpty(CorreoElectronico))
                {
                    MessageBox.Show("Necesita ingresar su Correo Electrónico en el apartado de Empresa ubicado en el módulo de configuración");
                    return;
                }

                if (WebServicesClass.InsertExcel_EMIDA
                    (
                        _sesion.RFC,
                        Razon_Social,
                        Razon_Social,
                        Calle,
                        Colonia,
                        Delegacion,
                        Ciudad,
                        CP,
                        Estado,
                        Delegacion,
                        Pais,
                        TipoContacto,
                        NombreContacto,
                        Telefono,
                        CorreoElectronico,
                        Calle,
                        Colonia,
                        Delegacion,
                        Ciudad,
                        CP,
                        Estado,
                        Delegacion,
                        Pais,
                        _sesion.RFC,
                        SIIE_ERP.BaseDatos.Configuracion.dbo_Sec_Usuario.Get_Usuario_Por_UserName(_sesion.UserName).Rows[0]["Email"].ToString()
                    ))
                { 
                    MessageBox.Show("Su información ha sido enviada correctamente. Al validar sus datos se habilitará la venta de Tiempo Aire.");
                }                
                else
                {
                    MessageBox.Show("Sus datos no se han enviado correctamente. Favor de volver a intentar.");
                    return;
                }

                dbo_Trans_TiempoAire_RFC dbo_TA = new dbo_Trans_TiempoAire_RFC(_sesion.RFC, _sesion.UserName);
                dbo_TA.Insert_TiempoAire_RFC();
                dbo_TA.Insert_ArticulosTA();

                ((ScrollViewer)this.Parent).Content = new TiempoAire_TerminosProceso(ref _sesion);            
            }
            else
            {
                MessageBox.Show("Favor de aceptar los términos y condiciones para poder avanzar.");
            }
        }

       
    }
}
